home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / MEDICAL / 1752.ZIP / MHD.ZIP / MHSEARCH.PRG < prev    next >
Text File  |  1986-07-11  |  5KB  |  148 lines

  1. * MHSEARCH   DB3 PLUS                                REVISION 03/06/86
  2. *
  3. * Allows choice of searching
  4. * MHORGAN.DBF for sensitive organisms,
  5. * MHCLINIC.DBF for clinical criteria,
  6. * MHCOMBIN.DBF for combining two or more search criteria,
  7. * and displays results of search.
  8. *
  9. CLOSE DATABASES
  10. PUBLIC search, search2, datafile, dofile, combsrch 
  11. repeat1 = .T.
  12. repeat2 = .T.
  13. repeat3 = .T.
  14. choice = [ ]
  15. combsrch = [ ]
  16. DO WHILE repeat1
  17.    DO WHILE .NOT. choice $'012'
  18.       CLEAR
  19.       ? 'SEARCH MENU'
  20.       ? '0. RETURN TO PREVIOUS MENU..............'
  21.       ? '1. SEARCH FOR ORGANISM SENSITIVITY......'
  22.       ? '2. SEARCH FOR CLINICAL CRITERIA.........'
  23.       WAIT 'ENTER THE NUMBER OF YOUR CHOICE: ' TO choice
  24.       IF choice ='0'
  25.          RETURN
  26.       ENDIF choice = 0
  27.    ENDDO WHILE .NOT. choice $'012'
  28.    ?
  29.    ? 'Setting up working files. This will take a few moments...'
  30.    DO CASE
  31.       CASE choice = '1' .AND. .NOT. search2
  32.          * This is first search
  33.          search2 = .F.
  34.          * Select DBF file for organism search
  35.          datafile = 'MHORGAN'
  36.          * Select PRG file for organism search
  37.          dofile = 'MHSRORGN'
  38.       CASE choice = '2'.AND. .NOT. search2
  39.          * This is first search
  40.          search2 = .F.
  41.          * Select DBF file for clinical data search
  42.          datafile = 'MHCLINIC'
  43.          * Select PRG file for clinical data search
  44.          dofile = 'MHSRCLINIC'
  45.       CASE choice = '1' .AND. search2
  46.          * Limit search to data set from previous search stored in MHWORK1.DBF
  47.          * Select DBF file for organism search
  48.          datafile = 'MHORGAN'
  49.          SELECT B
  50.          USE &datafile
  51.          SELECT A
  52.          USE MHWORK1
  53.          JOIN WITH &datafile to MHCOMBIN FOR DRUG_ID=B->DRUG_ID FIELDS;
  54.          DRUG_ID, ORGANISM
  55.          datafile = 'MHCOMBIN' 
  56.          * Select PRG file for organism search
  57.         dofile = 'MHSRORGN'
  58.       CASE choice = '2'.AND. search2
  59.          * Limit search to data set from previous search stored in MHWORK1.DBF
  60.          * Select DBF file for clinical data search
  61.          datafile = 'MHCLINIC'
  62.          SELECT B
  63.          USE &datafile
  64.          SELECT A
  65.          USE MHWORK1
  66.          JOIN WITH &datafile to MHCOMBIN FOR DRUG_ID=B->DRUG_ID FIELDS;
  67.          DRUG_ID, CLIN_DATA
  68.          datafile = 'MHCOMBIN' 
  69.          * Select PRG file for organism search
  70.          dofile = 'MHSRCLINIC'
  71.    ENDCASE
  72.    * Branch to program file for search
  73.    DO &DOFILE
  74.    IF .NOT. search2
  75.       combsrch = search
  76.    ENDIF NOT search2
  77.    IF search2
  78.       combsrch = combsrch + ' and ' + search
  79.    ENDIF search2
  80.    repeat3 = .T.
  81.    DO WHILE repeat3
  82.       * Find and display data from DRUG.DBF for drug:id stored in WORK1
  83.       STORE 0 TO line
  84.       SELECT A
  85.       USE MHDRUG INDEX MHDRUGID
  86.       SELECT B
  87.       USE MHWORK1
  88.       GOTO TOP
  89.       CLEAR
  90.       @ line + 0, 0 SAY 'Drugs for ' + combsrch
  91.       ******** TOP LINE *************************************************
  92.       @ line + 1, 0 SAY CHR(201) + SPACE(78) + CHR(187)
  93.       @ line + 1, 1 TO line + 1, 78 DOUBLE
  94.       ******** LABEL LINE ***********************************************
  95.       @ line + 2, 0 SAY CHR(186)
  96.       SET COLOR TO I
  97.       @ line + 2, 1 SAY 'GENERIC NAME' + REPL(CHR(255),5) + 'CLASS';
  98.       + REPL(CHR(255),11) + 'ROUTE' + REPL(CHR(255),4) + 'BRAND NAME';
  99.       + REPL(CHR(255),21) + 'ID:NO'
  100.       SET COLOR TO
  101.       @ line + 2, 79 SAY CHR(186)
  102.       DO WHILE .NOT. EOF()
  103.          mdrug_id = DRUG_ID
  104.          SELECT A
  105.          FIND &mdrug_id
  106.          ******** DATA LINE ***********************************************
  107.          @ line + 3, 0 SAY CHR(186) + GEN_NAME + '  ' + CLASS + '  '+ ROUTE; 
  108.          + '     ' + BR_NAME + '  ' + DRUG_ID + CHR(186)
  109.          STORE line + 1 TO line
  110.          IF line > 19
  111.             ACCEPT 'More data. Press RETURN to continue' TO waiting
  112.             CLEAR
  113.             line = -3
  114.          ENDIF line > 19
  115.          SELECT MHWORK1
  116.          SKIP
  117.       ENDDO WHILE NOT EOF
  118.       ******* BOTTOM LINE ***********************************************
  119.       @ line + 3, 0 SAY CHR(200) + SPACE(78) + CHR(188)
  120.       @ line + 3, 1 TO line + 3, 78 DOUBLE
  121.       ? '  0. Return to main menu'
  122.       ? '  1. Review one specific drug'
  123.       ? '  2. Review all the drugs listed'  
  124.       ? '  3. Repeat listing of drugs for ' + combsrch  
  125.       ? '  4. Combine ' + combsrch + ' with another search'
  126.       WAIT 'Enter the number of your choice: ' TO select
  127.       DO CASE
  128.          CASE select = '0'
  129.             RETURN
  130.          CASE select = '1'
  131.             DO MHDRUG
  132.             CLOSE DATABASES
  133.          CASE select = '2'
  134.             repeat3 = .T.
  135.             CLOSE DATABASES
  136.             DO MHSRLIST
  137.          CASE select = '3'
  138.             repeat3 = .T.
  139.          CASE select = '4'
  140.             choice = [ ]
  141.             search2 = .T.
  142.             repeat1 = .T.
  143.             repeat3 = .F.
  144.       ENDCASE 
  145.    ENDDO WHILE repeat3
  146. ENDDO WHILE repeat1
  147. RETURN
  148.